home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
shell
/
tokei4
/
src
/
sub.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-04-07
|
19KB
|
680 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <egb.h>
#include <guidbg.h>
int iconBaseHyperID = -1 ;
int iconBaseWindowID = -1 ;
int iconMenuID[3] = -1 ;
int iconMenuItemID[11] = -1 ;
int dialogBaseHyperID = -1 ;
int aboutDialogID = -1 ;
int aboutMessageID[4] = -1 ;
int aboutDButtonID = -1 ;
int timeSetBaseDialogID = -1 ;
int timeSetDButtonID[8] = -1 ;
int timeSetMessageID[11] = -1 ;
int timeSetScrollbarID = -1 ;
#include <eintm.h>
#include <time.h>
#include <mos.h>
#include <wgb.h>
#include <smsg.h>
extern char *guiEgbPtr ; /* EGB のワークアドレス */
#define T4GDATASIZE (7480)
// #define DEBUG
typedef struct {
_Far char *pixel;
short x1,y1;
short x2,y2;
} EGB_BLOCK;
int t4QuitFuncRet = ILLEGAL_FUNCTION ;
int t4UpdateFlag = -1 ; // -1:アップデート不可 0:アップデート可 1:一時強制全アップデート
int t4old_sec = -1;
int t4old_min = -1;
int t4old_hou = -1;
int t4Hour[3] = {13,16, 1} ; //タイマー時刻(時)
int t4Minute[3] = {54,59,30} ; //タイマー時刻(分)
int t4HourB[3]; //タイマー時刻(時)(設定用バッファ)
int t4MinuteB[3]; //タイマー時刻(分)(設定用バッファ)
int t4Switch[5]; //スイッチの状態 0:解除 1:設定
char t4GBuffer[T4GDATASIZE];//グラフィックデータバッファ
int t4x,t4y; //座標
int t4BackColor ; //塗り潰し用の色
int t4Poff ;
int t4Ps ;
int t4Noff ;
int t4Ns ;
int t4ClipFlag = 0; //クリップフラグ 他のダイアログが出ているとき、1
int t4TimeSetFlag = 0; //0~5
char t4MenuMessage[3][11] ; //メニューメッセージバッファ
int t4SMSGFlag = 0 ; //0:常駐していない 1:常駐している
int t4Beep[5]; //Beep Flag -1/0
char sBufA[] = "127000000 bytes free\0\0"; //about dialog
char sBuf[] = "00\0\0"; //number(scrollbar's)
char sBufS[6][7] ; //time set draw button number
EGB_BLOCK t4put;
void t4IdleTask(void);
void t4PreScreenChangeFunc(void);
void t4PostScreenChangeFunc(void);
void numPut(int,int);
void beep(int);
void messageSet( int , char * );
//===========================================================================
void t4IdleTask(void)
{
static int pflag = 0;
if(t4UpdateFlag == -1){
#ifdef DEBUG
printf("時計ー:アップデート禁止っす\n");
#endif
return;
}
if(t4UpdateFlag == 1){
#ifdef DEBUG
printf("時計ー:強制アップデート開始\n");
#endif
t4UpdateFlag = 0;
t4old_sec = -1;
t4old_min = -1;
t4old_hou = -1;
}
time_t ct = time(NULL);
struct tm *lt = localtime(&ct);
// まだ一秒経っていないなら終了
if ( lt->tm_sec == t4old_sec ){
return;
}
t4old_sec = lt->tm_sec;
pflag = 1 - pflag;
//ポイント描画
//クリップをかける
WINCLIP *clip;
WINCLIP *clipBuffer;
if(t4ClipFlag != 0){
#ifdef DEBUG
printf("時計ー:クリップ設定\n");
#endif
FRAME fr;
fr.lupx = t4x;
fr.lupy = t4y;
fr.rdwx = t4x + 58;
fr.rdwy = t4y + 15;
clip = WIN_clipWindow(iconBaseWindowID,
WIN_getClipMemory(&fr,NULL),TRUE);
WIN_pushClip(clip, &clipBuffer) ;
}
EGB_color( guiEgbPtr , 0 , t4BackColor ); // 前景色
EGB_color( guiEgbPtr , 2 , t4BackColor ); // 面塗り色
EGB_paintMode( guiEgbPtr , 2+32 ); // ベタ塗り
t4put.pixel = (char *)&t4GBuffer[t4Poff + pflag * t4Ps] ;
t4put.x1 = t4x + 26;
t4put.y1 = t4y + 3 ;
t4put.x2 = t4put.x1 + 5 ;
t4put.y2 = t4put.y1 + 9 ;
// 現在のマウスカーソルの位置を読む
int i;
Rect rmos;
MOS_rdpos( &i,(int *)&rmos.left, (int *)&rmos.up );
rmos.right= rmos.left + 31;
rmos.down = rmos.up + 31;
if ( SectRect( &rmos, (Rect *)&t4put.x1 ) ){
MG_mosDisp(2);
EGB_writeMode( guiEgbPtr , 0 ); // 0=PSET
WGB_rectangle( guiEgbPtr , (char *)&t4put.x1 );
EGB_writeMode( guiEgbPtr , 6 ); // 6=MATTE
WGB_putBlock( guiEgbPtr, 3, (char *)&t4put ) ;
MG_mosDisp(3);
} else {
EGB_writeMode( guiEgbPtr , 0 ); // 0=PSET
WGB_rectangle( guiEgbPtr , (char *)&t4put.x1 );
EGB_writeMode( guiEgbPtr , 6 ); // 6=MATTE
WGB_putBlock( guiEgbPtr, 3, (char *)&t4put ) ;
}
// 一分経っていたら描画
if ( lt->tm_min != t4old_min ){
#ifdef DEBUG
printf("時計ー:分表示\n");
#endif
t4old_min = lt->tm_min;
numPut(2 , t4old_min / 10);
numPut(3 , t4old_min % 10);
for(i=0;i<3;i++){
if(t4Switch[i]==1)
if((t4old_min==t4Minute[i]) && (lt->tm_hour==t4Hour[i]) ){
if(t4Beep[i]!=t4old_min){
t4Beep[i] = t4old_min ;
#ifdef DEBUG
printf("時計ー:タイマー%d(%d:%d)のチャイムです\n",
i+1,t4Hour[i],t4Minute[i]);
#endif
beep(5);
}
} else t4Beep[i] = -1 ;
}
if((t4old_min==0) || (t4old_min==30))
if((t4Switch[4]==1) && (t4Beep[4]!=t4old_min)){
#ifdef DEBUG
printf("時計ー:%d分のチャイムです\n",t4old_min);
#endif
beep(2);
t4Beep[4]=t4old_min;
}
}
// 一時間経っていたら描画
if ( lt->tm_hour != t4old_hou ){
#ifdef DEBUG
printf("時計ー:時表示\n");
#endif
t4old_hou = lt->tm_hour;
numPut(0 , t4old_hou / 10);
numPut(1 , t4old_hou % 10);
if(t4old_min==0)
if((t4Switch[3]==1) && (t4Beep[3]!=t4old_hou)){
#ifdef DEBUG
printf("時計ー:%d時のチャイムです\n",t4old_hou);
#endif
beep(3);
t4Beep[3]=t4old_hou;
}
}
//クリップ解除
if(t4ClipFlag != 0){
WIN_popClip(clipBuffer);
}
return;
}
//===========================================================================
void beep( num )
int num;
{
//アラームを鳴らす
int i;
for(i=0;i<num;i++){
int j,ptr;
j = MG_PushPtr(((i%2)==0) ? 24 : 121 ,&ptr);
if(j==0){
#ifdef DEBUG
printf("時計ー:音あり\n");
#endif
if(t4SMSGFlag==1) SMSG_play(7,0);
MMI_WaitLoop(40);
MG_PopPtr( ptr );
} else { ;
#ifdef DEBUG
printf("時計ー:音なし\n");
#endif
}
}
return ;
}
//===========================================================================
void numPut( id, num)
int id;
int num;
{
t4put.pixel = (char *)&t4GBuffer[t4Noff + num * t4Ns] ;
t4put.x1 = t4x + id * 13;
t4put.y1 = t4y ;
if(id>1) t4put.x1 = t4put.x1 + 7;
t4put.x2 = t4put.x1 + 11 ;
t4put.y2 = t4put.y1 + 15 ;
int btn;
Rect rmos;
MOS_rdpos( &btn,(int *)&rmos.left, (int *)&rmos.up );
rmos.right= rmos.left + 31;
rmos.down = rmos.up + 31;
if ( SectRect( &rmos, (Rect *)&t4put.x1 ) ){
MG_mosDisp(2);
EGB_writeMode( guiEgbPtr , 0 ); // 0=PSET
WGB_rectangle( guiEgbPtr , (char *)&t4put.x1 );
EGB_writeMode( guiEgbPtr , 6 ); // 6=MATTE
WGB_putBlock( guiEgbPtr, 3, (char *)&t4put ) ;
MG_mosDisp(3);
} else {
EGB_writeMode( guiEgbPtr , 0 ); // 0=PSET
WGB_rectangle( guiEgbPtr , (char *)&t4put.x1 );
EGB_writeMode( guiEgbPtr , 6 ); // 6=MATTE
WGB_putBlock( guiEgbPtr, 3, (char *)&t4put ) ;
}
return;
}
//===========================================================================
/* initDataICONGUI:iconBaseWindowID:MJ_WINDOWL40の呼び出し関数 */
int windowFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
if(messId==MM_MOVE){
#ifdef DEBUG
printf("時計ー(Window):MM_MOVE\n");
#endif
FRAME fr;
EIN_getObjectFrame(kobj,&fr);
t4x = fr.lupx + 6 ;
t4y = fr.lupy + 4 ;
} else if((messId==MM_SHOW) || (messId==MM_UPDATE)){
#ifdef DEBUG
printf("時計ー(Window):MM_SHOW||MM_UPDATE\n");
#endif
t4UpdateFlag = 1;
} else return -1 ; // -1で抜けると、window本来の動きをする
return NOERR ;
}
//===========================================================================
/* initDataICONGUI:iconMenuItemID[1]:MJ_MITEML40の呼び出し関数 */
int aboutFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
//aboutダイアログを出す
sprintf(sBufA,"%d bytes free",EIN_checkMem());
MMI_SendMessage( aboutMessageID[2],MM_SETMSG,1, sBufA);
//アイコン関係を選択不可にする
MMI_SendMessage(iconMenuID[0],MM_ENABLE,1,FALSE);
MMI_SendMessage(iconMenuID[0],MM_SHOW,0);
//aboutダイアログを繋いで、表示
MMI_SendMessage(aboutDialogID,MM_ATTACH,1,dialogBaseHyperID);
MMI_SendMessage(aboutDialogID,MM_SHOW,0);
t4UpdateFlag = 1;
t4ClipFlag = 1 ;
return NOERR ;
}
//===========================================================================
/* initDataICONGUI:iconMenuItemID[6]:MJ_MITEML40の呼び出し関数 */
/* initDataICONGUI:iconMenuItemID[7]:MJ_MITEML40の呼び出し関数 */
/* initDataICONGUI:iconMenuItemID[8]:MJ_MITEML40の呼び出し関数 */
/* initDataICONGUI:iconMenuItemID[9]:MJ_MITEML40の呼び出し関数 */
/* initDataICONGUI:iconMenuItemID[10]:MJ_MITEML40の呼び出し関数 */
int switchSetFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int i=6;
while(iconMenuItemID[i] != kobj) i++;
i = i-6;
if(t4Switch[i] == 1){
//リセット
t4Switch[i] = 0;
MTL_resetAtrObj( kobj , ~MS_CHECKL40 );
#ifdef DEBUG
printf("時計ー:タイマー%d(%2d時 %2d分)解除\n",
i+1,t4Hour[i],t4Minute[i]);
#endif
} else {
//セット
t4Switch[i] = 1;
MTL_setAtrObj( kobj , MS_CHECKL40 );
#ifdef DEBUG
printf("時計ー:タイマー%d(%2d時 %2d分)設定\n",
i+1,t4Hour[i],t4Minute[i]);
#endif
}
t4UpdateFlag = 1;
t4ClipFlag = 0;
return NOERR ;
}
HYPER hypDB[6];
//===========================================================================
/* initDataICONGUI:iconMenuItemID[3]:MJ_MITEML40の呼び出し関数 */
int timerSetFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
//時刻セットダイアログを出す
//アイコン関係を選択不可にする
MMI_SendMessage(iconMenuID[0],MM_ENABLE,1,FALSE);
MMI_SendMessage(iconMenuID[0],MM_SHOW,0);
//時刻セットダイアログを繋いで、表示
MMI_SendMessage(timeSetBaseDialogID,MM_ATTACH,1,dialogBaseHyperID);
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_GETHYPER,1,
&(hypDB[t4TimeSetFlag]));
hypDB[t4TimeSetFlag].atrm =
((hypDB[t4TimeSetFlag].atrm & ~MS_DFRAMEL40 ) | MS_DFRAMEL40 );
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_SETHYPER,1,
&hypDB[t4TimeSetFlag]);
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_ENABLE ,1,FALSE);
//スクロールバーに値をセット
int i,j,k;
if((t4TimeSetFlag%2)==1){
i = 59;
j = 5;
k = t4Minute[t4TimeSetFlag/2];
} else {
i = 23;
j = 2;
k = t4Hour[t4TimeSetFlag/2];
}
MMI_SendMessage( timeSetScrollbarID , MM_SETSCROLL ,5,
k , 0, i, 1, j );
MMI_SendMessage( timeSetScrollbarID , MM_ENABLE ,1,TRUE);
//現在のタイマーの値を複写する
for(i=0;i<3;i++){
t4HourB[i] = t4Hour[i];
t4MinuteB[i] = t4Minute[i];
#ifdef DEBUG
printf("時計ー:タイマー%d %2d時 %2d分.\n",
i+1,t4Hour[i],t4Minute[i]);
#endif
}
//タイマー時刻を、ボタンに書き込む
for(i=0;i<3;i++){
sprintf(&(sBufS[i*2][0]),"%2d時",t4Hour[i]);
sprintf(&(sBufS[i*2+1][0]),"%2d分",t4Minute[i]);
MMI_SendMessage(timeSetMessageID[i*2+1],MM_SETMSG,1,
&(sBufS[i*2][0]));
MMI_SendMessage(timeSetMessageID[i*2+2],MM_SETMSG,1,
&(sBufS[i*2+1][0]));
}
//全表示
MMI_SendMessage( timeSetBaseDialogID , MM_SHOW , 0 );
t4ClipFlag = 1 ;
t4UpdateFlag = 1;
return NOERR ;
}
//===========================================================================
/* initDataICONGUI:iconMenuItemID[5]:MJ_MITEML40の呼び出し関数 */
int quitFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
MMI_SetHaltFlag( TRUE );
t4UpdateFlag = -1;
t4QuitFuncRet = NOERR;
t4ClipFlag = 0;
return NOERR ;
}
//===========================================================================
/* initDataABOUTGUI:aboutDButtonID:MJ_DBUTTONL40の呼び出し関数 */
int aboutQuitFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
//aboutダイアログを消去して、はずす
MMI_SendMessage(aboutDialogID,MM_ERASE,0);
MMI_SendMessage(aboutDialogID,MM_DETACH,0);
//アイコン関係を選択可にする
MMI_SendMessage(iconMenuID[0],MM_ENABLE,1,TRUE);
MMI_SendMessage(iconMenuID[0],MM_SHOW,0);
t4ClipFlag = 0 ;
return NOERR ;
}
//===========================================================================
/* initDataT_SETGUI:timeSetDButtonID[0]:MJ_DBUTTONL40の呼び出し関数 */
/* initDataT_SETGUI:timeSetDButtonID[1]:MJ_DBUTTONL40の呼び出し関数 */
/* initDataT_SETGUI:timeSetDButtonID[2]:MJ_DBUTTONL40の呼び出し関数 */
/* initDataT_SETGUI:timeSetDButtonID[3]:MJ_DBUTTONL40の呼び出し関数 */
/* initDataT_SETGUI:timeSetDButtonID[4]:MJ_DBUTTONL40の呼び出し関数 */
/* initDataT_SETGUI:timeSetDButtonID[5]:MJ_DBUTTONL40の呼び出し関数 */
int timeSetButtonFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int i=0;
while(timeSetDButtonID[i]!=kobj) i++;
#ifdef DEBUG
printf("時計ー:現在%d -> 変更%d\n",t4TimeSetFlag,i);
#endif
//今、へっこんでいるを、元に戻して、選択可にする
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_GETHYPER,1,
&(hypDB[t4TimeSetFlag]));
hypDB[t4TimeSetFlag].atrm =
((hypDB[t4TimeSetFlag].atrm & ~MS_DFRAMEL40 ) | MS_UFRAMEL40 );
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_SETHYPER,1,
&hypDB[t4TimeSetFlag]);
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_ENABLE ,1,TRUE);
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_ERASE,0);
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_SHOW,0);
MMI_SendMessage(timeSetMessageID[t4TimeSetFlag+1],MM_SHOW,0);
t4TimeSetFlag = i;
//選択不可にして、へっこませる
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_GETHYPER,1,
&(hypDB[t4TimeSetFlag]));
hypDB[t4TimeSetFlag].atrm =
((hypDB[t4TimeSetFlag].atrm & ~MS_DFRAMEL40 ) | MS_DFRAMEL40 );
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_SETHYPER,1,
&hypDB[t4TimeSetFlag]);
MMI_SendMessage( timeSetDButtonID[i] , MM_ENABLE ,1,FALSE);
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_ERASE,0);
MMI_SendMessage( timeSetDButtonID[t4TimeSetFlag] , MM_SHOW,0);
MMI_SendMessage(timeSetMessageID[t4TimeSetFlag+1],MM_SHOW,0);
//分だったら最大値を59に、時だったら23に、設定。現在の値も設定。
int j,k,l;
if((i%2)==1){
j = 59 ;
k = 5 ;
l = t4MinuteB[i/2] ;
} else {
j = 23 ;
k = 2 ;
l = t4HourB[i/2] ;
}
sprintf(sBuf,"%d",j);
MMI_SendMessage( timeSetScrollbarID , MM_ERASE , 0);
MMI_SendMessage( timeSetScrollbarID , MM_ENABLE ,1,TRUE);
MMI_SendMessage( timeSetScrollbarID , MM_SETSCROLL ,5,
l , 0, j, 1, k );
messageSet(timeSetMessageID[8],sBuf);
MMI_SendMessage( timeSetScrollbarID , MM_SHOW ,0);
return NOERR ;
}
//===========================================================================
/* initDataT_SETGUI:timeSetDButtonID[6]:MJ_DBUTTONL40の呼び出し関数 */
/* initDataT_SETGUI:timeSetDButtonID[7]:MJ_DBUTTONL40の呼び出し関数 */
int timeSetFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int i;
if(kobj==timeSetDButtonID[6]){
//今の設定を有効にして(本物の領域に複写して)、ダイアログを消す
//この時、メニューの数字も変えておく
for(i=0;i<3;i++){
t4Hour[i] = t4HourB[i];
t4Minute[i] = t4MinuteB[i];
sprintf(&(t4MenuMessage[i][0]),"%2d時 %2d分",
t4Hour[i],t4Minute[i]);
MMI_SendMessage(iconMenuItemID[i+6],MM_SETMSG,1,
&(t4MenuMessage[i][0]));
}
} else {
//今の設定は無効だから、そのままダイアログを消す
;
}
t4Beep[0] = -1 ;
t4Beep[1] = -1 ;
t4Beep[2] = -1 ;
t4Beep[4] = t4old_min ;
t4Beep[3] = t4old_hou ;
//ダイアログを消す
MMI_SendMessage(timeSetBaseDialogID,MM_ERASE,0);
MMI_SendMessage(timeSetBaseDialogID,MM_DETACH,0);
MMI_SendMessage(iconMenuID[0],MM_ENABLE,1,TRUE);
MMI_SendMessage(iconMenuID[0],MM_SHOW,0);
t4ClipFlag = 0 ;
return NOERR ;
}
//===========================================================================
/* initDataT_SETGUI:timeSetScrollbarID:MJ_SCRLL40の呼び出し関数 */
int timeSetScrollbarFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int i,j,dummy;
//現在の数値を読み取って
MMI_SendMessage( kobj,MM_GETSCROLL,5, &i, &dummy, &j ,&dummy,&dummy );
//(仮の)時刻に設定する
if(j==23){
t4HourB[t4TimeSetFlag/2] = i ;
sprintf(&(sBufS[t4TimeSetFlag][0]),"%2d時",i);
} else {
t4MinuteB[t4TimeSetFlag/2] = i ;
sprintf(&(sBufS[t4TimeSetFlag][0]),"%2d分",i);
}
//message部品に設定して、再表示
messageSet(timeSetMessageID[t4TimeSetFlag+1],&(sBufS[t4TimeSetFlag][0]));
return NOERR ;
}
//===========================================================================
/* initDataICONGUI:iconMenuItemID[0]:MJ_MITEML40の呼び出し関数 */
int menuCallFunc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
#ifdef DEBUG
printf("時計ー(MenuItem):アップデート禁止\n");
#endif
t4UpdateFlag = -1;
return -1;
// return NOERR;
}
//===========================================================================
//メッセージ部品に文字を設定して、再表示
void messageSet( id , s )
int id;
char *s;
{
MMI_SendMessage( id , MM_SETMSG , 1 , s );
MMI_SendMessage( id , MM_SHOW , 0 );
}
//===========================================================================
void t4PreScreenChangeFunc(void)
{
t4UpdateFlag = -1 ;
return;
}
//===========================================================================
void t4PostScreenChangeFunc(void)
{
//現在のピクセルモードを調べる
int modebuf[8];
// EGB 画面情報取得
EGB_getResolutionPage( 0, modebuf );
int i;
i = t4Poff;
if(modebuf[4]==4){ //16色モード
t4Poff = 128*10 ;
t4Ps = 40 ;
t4Noff = 0 ;
t4Ns = 128 ;
#ifdef DEBUG
printf("時計ー:16色モード\n");
#endif
} else if(modebuf[4]==8) { //256色モード
t4Poff = 128*10+40*2+192*10 ;
t4Ps = 60 ;
t4Noff = 128*10+40*2 ;
t4Ns = 192 ;
#ifdef DEBUG
printf("時計ー:256色モード\n");
#endif
} else if(modebuf[4]==16) { //32k色モード
t4Poff = 128*10+40*2+192*10+60*2+384*10 ;
t4Ps = 120 ;
t4Noff = 128*10+40*2+192*10+60*2 ;
t4Ns = 384 ;
#ifdef DEBUG
printf("時計ー:32768色モード\n");
#endif
} else { //非対応
t4Poff = 128*10 ;
t4Ps = 40 ;
t4Noff = 0 ;
t4Ns = 128 ;
#ifdef DEBUG
printf("時計ー:非対応画面モード(%d)\n",modebuf[4]);
#endif
}
//塗り潰し用の色
t4BackColor = MG_colorChange(1);
t4UpdateFlag = 1 ;
return;
}